package com.campus.help.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.campus.help.entity.School;
import com.campus.help.vo.SchoolVO;

import java.util.List;

/**
 * 学校服务接口
 */
public interface SchoolService extends IService<School> {
    
    /**
     * 获取所有正常状态的学校
     */
    List<School> getActiveSchools();
    
    /**
     * 获取学校列表（转换为VO）
     */
    List<SchoolVO> getSchoolList();
    
    /**
     * 根据ID获取学校信息（转换为VO）
     */
    SchoolVO getSchoolById(Long id);
    
    /**
     * 分页获取学校列表
     * 
     * @param page 页码
     * @param size 每页大小
     * @param status 状态：1-启用，0-禁用
     * @param keyword 关键词
     * @param province 省份
     * @param city 城市
     * @return 分页学校列表
     */
    Page<SchoolVO> getSchoolPageList(int page, int size, Integer status, String keyword, String province, String city);
    
    /**
     * 添加学校
     *
     * @param school 学校信息
     * @return 是否成功
     */
    boolean addSchool(School school);
    
    /**
     * 更新学校信息
     *
     * @param school 学校信息
     * @return 是否成功
     */
    boolean updateSchool(School school);
    
    /**
     * 删除学校（软删除）
     *
     * @param id 学校ID
     * @return 是否成功
     */
    boolean deleteSchool(Long id);
    
    /**
     * 批量删除学校
     *
     * @param ids 学校ID列表
     * @return 是否成功
     */
    boolean batchDeleteSchools(List<Long> ids);
    
    /**
     * 更新学校状态
     *
     * @param id 学校ID
     * @param status 状态：ACTIVE-启用，DISABLED-禁用
     * @return 是否成功
     */
    boolean updateSchoolStatus(Long id, String status);
}